Edit the make files DemoFile.make and FileTask.make to specify the A/ROSE Includes folder. Specify folder for the printf routine of the A/ROSE:Examples.
In FileTask.make specify the folder for IPCGlue.
Build the FileTask using FileTask.make.
Launch FileTask. It works as a faceless background task.
Build DemoFile using DemoFile.make.
This is a dynamically downloadable A/ROSE tasks running on the NuBus card.
You need to launch the print manager to see messages from DemoFile.
What is it?
The A/ROSE file manager provides access to a limited portion of the host Macintosh's file system to A/ROSE tasks. The file manager is implemented as a Multi-finder faceless background application. It should be placed in the "Startup" folder and launched at boot time.
The file manager is not meant to be an a complete implementation of HFS, but rather a simple means for A/ROSE tasks to gain access to files on the Macintosh. Because the concept of "working directory" does not exist in this "flat" implementation of the file manager, file access is limited to those files that exist in one folder. This folder is the "A/ROSE" folder; it is located inside the 7.0 "Extensions" folder.
Calls are provided for the high-level routines described under the headings of "Accessing Files", "Creating and Deleting Files", and "Changing Information About Files" (see Inside Macintosh Volume IV, page 190).
By using the glue provided, tasks have access to synchronous file system calls. By sending the messages directly to the file system task, asynchronous calls can be made.
Call Descriptions
AFSOpen - Open file access path.
Glue: OSErr
AFSOpen( char *fileName, short vRefNum, short *refNum);
Entry: mCode - FS_OPEN
mSData[0] - Volume reference number (ignored).
mDataPtr - Pointer to file name (C string).
mDataSize - Length of file name.
Exit: mOData[0] - File reference number.
mStatus - File System error number (if any).
AOpenRF - Open resource fork access path.
Glue: OSErr
AOpenRF( char *fileName, short vRefNum, short *refNum);
Entry: mCode - FS_OPENRF
mSData[0] - Volume reference number (ignored).
mDataPtr - Pointer to file name (C string).
mDataSize - Length of file name.
Exit: mOData[0] - File Reference Number.
mStatus - File System error number (if any).
AFSRead - Read from file.
Glue: OSErr
AFSRead( short refNum, long *count, char *buffPtr);
Entry: mCode - FS_READ
mSData[0] - File Reference Number.
mDataPtr - Pointer to data buffer.
mDataSize - Length of data.
Exit: mDataSize - Actual number of bytes read.
mStatus - File System error number (if any).
AFSWrite - Write to file.
Glue: OSErr
AFSWrite( short refNum, long *count, char *buffPtr);
Entry: mCode - FS_WRITE
mSData[0] - File Reference Number.
mDataPtr - Pointer to data buffer.
mDataSize - Length of data.
Exit: mDataSize - Actual number of bytes written.
mStatus - File System error number (if any).
AGetFPos - Get File Positon.
Glue: OSErr
AGetFPos( short refNum, long *filePos);
Entry: mCode - FS_GETFPOS
mSData[0] - File Reference Number.
Exit: mOData[0] - Current File Position.
mStatus - File System error number (if any).
ASetFPos - Set File Positon.
Glue: OSErr
ASetFPos( short refNum, short posMode, long posOff);
Entry: mCode - FS_SETFPOS
mSData[0] - File Reference Number.
mOData[0] - Position Mode (see Inside Mac IV-110).
mOData[1] - Position Offset.
Exit: mStatus - File System error number (if any).
AGetEOF - Get End-Of-File.
Glue: OSErr
AGetEOF( short refNum, long *logEOF);
Entry: mCode - FS_GETEOF
mSData[0] - File Reference Number.
Exit: mOData[0] - Logical End-Of-File.
mStatus - File System error number (if any).
ASetEOF - Set End-Of-File.
Glue: OSErr
SetEOF( short refNum, long logEOF);
Entry: mCode - FS_SETEOF
mSData[0] - File Reference Number.
mOData[0] - Desired Logical End-Of-File.
Exit: mStatus - File System error number (if any).
AAllocate - Allocate bytes to file.
Glue: OSErr
AAllocate( short refNum, long *count);
Entry: mCode - FS_ALLOCATE
mSData[0] - File Reference Number.
mOData[0] - Desired number of bytes to allocate.
Exit: mOData[0] - Number of bytes actually allocated.
mStatus - File System error number (if any).
AFSClose - Close file.
Glue: OSErr
AFSClose( short refNum );
Entry: mCode - FS_CLOSE
mSData[0] - File Reference Number.
Exit: mStatus - File System error number (if any).
Areate - Create file.
Glue: OSErr
ACreate( char *fileName, short vRefNum, OSType creator, OSType fileType );
Entry: mCode - FS_CREATE
mSData[0] - Volume reference number (ignored).
mOData[0] - File Creator.
mOData[1] - File Type.
mDataPtr - Pointer to file name (C string).
mDataSize - Length of file name.
Exit: mStatus - File System error number (if any).
AFSDelete - Delete file.
Glue: OSErr
AFSDelete( char *fileName, short vRefNum );
Entry: mCode - FS_OPEN
mSData[0] - Volume reference number (ignored).
mDataPtr - Pointer to file name (C string).
mDataSize - Length of file name.
Exit: mStatus - File System error number (if any).
AGetFInfo - Get File Information.
Glue: OSErr
AetFInfo(char *fileName, short vRefNum,
FInfo *fndrInfo);
Entry: mCode - FS_GETFINFO
mSData[0] - Volume reference number (ignored).
mDataPtr - Pointer to file name.
mDataSize - Length of file name.
Exit: mDataPtr - FInfo record returned.
mDataSize - sizeof( FInfo ).
mStatus - File System error number (if any).
ASetFInfo - Set File Information.
Glue: OSErr
ASetFInfo(char *fileName, short vRefNum, FInfo fndrInfo);
Entry: mCode - FS_SETFINFO
mSData[0] - Volume reference number (ignored).
mDataPtr - Pointer to FInfo block (followed by
File Name).
mDataSize - sizeof(FInfo) + Length of File Name.
Exit: mStatus - File System error number (if any).
ASetFLock - Set File Lock.
Glue: OSErr
ASetFLock(char *fileName, short vRefNum);
Entry: mCode - FS_SETFLOCK
mSData[0] - Volume reference number (ignored).
mDataPtr - Pointer to File Name.
mDataSize - Length of File Name.
Exit: mStatus - File System error number (if any).
ARstFLock - Reset File Lock.
Glue: OSErr
ARstFLock(char *fileName, short vRefNum);
Entry: mCode - FS_RSTFLOCK
mSData[0] - Volume reference number (ignored).
mDataPtr - Pointer to File Name.
mDataSize - Length of File Name.
Exit: mStatus - File System error number (if any).
ARename - Rename file.
Glue: OSErr
ARename(char *oldName, short vRefNum, char *newName);
Entry: mCode - FS_RENAME
mSData[0] - Volume reference number (ignored).
mSData[1] - Length of Old File Name.
mSData[2] - Length of New File Name.
mDataPtr - Pointer to Old File Name (followed by New File Name).
mDataSize - Length of Old + New File Name.
Exit: mStatus - File System error number (if any).